package com.zkthink.ceres.msgs.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * FileName: MobilePushVO
 * Author:   Pepis
 * Date:   2020  2020/8/31 10:19
 * Description: 移动推送 DTO
 **/
@NoArgsConstructor
@AllArgsConstructor
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
@Builder
@Data
@Accessors(chain = true)
@ApiModel(value = "MobilePushDTO", description = "移动推送DTO")
public class MobilePushDTO implements Serializable {
    private static final long serialVersionUID = 1L;


    //推送目标: DEVICE:按设备推送 ALIAS : 按别名推送 ACCOUNT:按帐号推送  TAG:按标签推送; ALL: 广播推送
//    @ApiModelProperty("推送目标: DEVICE:按设备推送 ALIAS : 按别名推送 ACCOUNT:按帐号推送  TAG:按标签推送; ALL: 广播推送")
//    private String target;

    //根据Target来设定，如Target=DEVICE, 则对应的值为 设备id1,设备id2. 多个值使用逗号分隔.(帐号与设备有一次最多100个的限制)
    @ApiModelProperty("根据Target来设定，如Target=DEVICE, 则对应的值为 设备id1,设备id2. 多个值使用逗号分隔.(帐号与设备有一次最多100个的限制),全量推送时,TargetValue = ALL")
    private String targetValue;

    //    消息类型 MESSAGE NOTICE
    @ApiModelProperty("消息类型: MESSAGE NOTICE")
    @NotNull(message = "请填写消息类型")
    private String pushType;

    // 设备类型 ANDROID iOS ALL.
//    @ApiModelProperty("设备类型: ANDROID iOS ALL")
//    private String deviceType;

    //消息标题
    @ApiModelProperty("消息标题")
    @NotNull(message = "请填写消息标题")
    private String title;

    //消息体
    @ApiModelProperty("消息体")
    @NotNull(message = "请填写消息体")
    private String body;

    @ApiModelProperty("安卓消息标题")
    @NotNull(message = "请填写安卓消息标题")
    private String androidPopupTitle;

    @ApiModelProperty("安卓消息体")
    @NotNull(message = "请填写安卓消息体")
    private String androidPopupBody;
}
